package com.gzx.plugin.tjzy.modular.call.ht.entity.vo;

import com.fhs.core.trans.anno.Trans;
import com.fhs.core.trans.constant.TransType;
import com.fhs.core.trans.vo.TransPojo;
import com.gzx.plugin.tjzy.modular.call.ht.entity.GzxHtCallRecord;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import vip.xiaonuo.common.sensitive.annotation.Sensitive;
import vip.xiaonuo.common.sensitive.core.SensitiveStrategy;

import java.io.Serial;
import java.io.Serializable;


/**
 * 恒天外呼话单视图对象 gzx_ht_call_record
 *
 * @author LionLi
 * @date 2024-10-11
 */
@Data
@AutoMapper(target = GzxHtCallRecord.class)
public class GzxHtCallRecordVo implements Serializable, TransPojo {

    @Serial
    private static final long serialVersionUID = 1L;

    private String id;

    /**
     * 0呼入1呼出2预测外呼3磋商4内呼
     */
    @Trans(type = TransType.DICTIONARY, key = "TalkType")
    private Integer callType;

    /**
     * 呼叫序列号
     */
    private String callId;

    /**
     * 工号
     */
    private String agentNum;

    /**
     * 用户
     */
    private String userName;

    /**
     * 主叫
     */
    private String caller;

    /**
     * 被叫
     */
    @Sensitive(strategy = SensitiveStrategy.PHONE)
    private String callee;

    /**
     * 客户振铃时间
     */
    private String ringTime;

    /**
     * 振铃时长
     */
    private Integer ringDuration;

    /**
     * 客户接通时间
     */
    private String connectTime;

    /**
     * 通话开始时间
     */
    private String startTime;

    /**
     * 通话结束时间
     */
    private String endTime;

    /**
     * 通话时长
     */
    private Integer callDuration;

    /**
     * 录音URL
     */
    private String fileUrl;

    /**
     * 号码归属地
     */
    private String area;

    /**
     * 呼叫结果
     */
    private String result;

    /**
     * 1客户挂断2坐席挂断
     */
    @Trans(type = TransType.DICTIONARY, key = "HTSignalType")
    private Integer signal;

    /**
     * 预测外呼任务ID
     */
    private String taskId;

    /**
     * 预测外呼追加名单时间
     */
    private String importTime;

    /**
     * 预测外呼排队时间
     */
    private String addTime;

    /**
     * 预测外呼转人工时间
     */
    private String acdEndTime;

    /**
     * 预测外呼排队时长
     */
    private Integer acdDuration;

    /**
     * 是否转满意度
     */
    private Boolean inviteComments;

    /**
     * 满意度评价
     */
    private String mydKey;

    /**
     * ASR识别编码
     */
    private Integer asrCode;

    /**
     * ASR识别状态
     */
    private String asrName;

    /**
     * 公司编码（英文）
     */
    private String companyName;

    /**
     * 创建时间
     */
    private String createdTime;
}
